<?php
	// On prolonge la session
	session_start();

	$id_anim='';
	$code='';
	$message='';

	require_once('../../classes/database.php');
	$idconnect=Database::getInstance();

	//vérifiaction des droits de l'utilisateur
	$querytest = pg_query($idconnect,"SELECT * FROM droit_utilisateur WHERE (id_droit=12 or id_droit=1 ) and id_user=".$_SESSION['membre_id']);
	$saise_genotypage = pg_num_rows($querytest);
	if(isset($_SESSION['membre_id']) && $saise_genotypage != 0){

		// On teste si la variable de session existe et contient une valeur
		if(empty($_SESSION['id_anim'])){
			// Si inexistante ou nulle, on redirige vers le formulaire de login
			header('Location: ../saisie.php');
			exit();
		}
		else{
			$id_anim=$_SESSION['id_anim'];
			$code=$_SESSION['code'];
		}

		// Remplissage de la base de données
		if(!empty($_POST)){
			//vérification que les champs ont bien été remplis
			if($_POST['date']=="none" || $_POST['exp']=="none" || $_POST['code']=="none" || empty($_POST['loc']) || empty($_POST['al1'])
			|| empty($_POST['al2']) || empty($_POST['geno'])){
				$message = 'Veuillez entrer une date de test, un expérimentateur et un code marqueur, au moins deux allèles, la localisation
				et le génotype !';
			}
			else{
				$_POST['date'] = htmlspecialchars($_POST['date']);
				$_POST['code'] = htmlspecialchars($_POST['code']);
				$_POST['exp'] = htmlspecialchars($_POST['exp']);
				$_POST['loc'] = htmlspecialchars($_POST['loc']);
				$_POST['al1'] = htmlspecialchars($_POST['al1']);
				$_POST['al2'] = htmlspecialchars($_POST['al2']);
				$_POST['geno'] = htmlspecialchars($_POST['geno']);
				$code='';
				if($_POST['code']=="autre" && !(empty($_POST['autre_code']))){$code = htmlspecialchars($_POST['autre_code']);}
				else if($_POST['code']!="autre"){$code = $_POST['code'];}

				if(preg_match("#^\d\d\/\d\d\/\d\d\d\d$#",$_POST['date']) && $code!=''){
					list($day, $month, $year) = explode("/", $_POST['date']);
					$date = "{$year}-{$month}-{$day}";
					
					//récupération de l'id_type_test
					$query = pg_query($idconnect,"SELECT id_type_test FROM type_test WHERE label LIKE '%Génotypage%'");
					$back = pg_fetch_assoc($query);
					$id_type_test = $back['id_type_test'];

					//vérification de l'existance d'un test à cette date avec cet expérimentateur
					$query1 = pg_query($idconnect,"SELECT id_test FROM test  WHERE date_test='".$date."' AND experimentateur='".$_POST['exp']."'
					AND id_type_test=$id_type_test");
					$nb1 = pg_num_rows($query1);
					if($nb1!=0){ // si une date de test avec cet expérimentateur existe déjà
						$back1 = pg_fetch_assoc($query1);
						$id_test = $back1['id_test'];
					}
					else{ //création de test
						$sql = pg_query($idconnect,"INSERT INTO test (id_type_test,date_test,experimentateur) VALUES ($id_type_test,'".$date."','".$_POST['exp']."') RETURNING id_test");
						$insert_row = pg_fetch_row($sql);
						$id_test = $insert_row[0];
					}

					//vérification de l'existance de l'id_res
					$query2 = pg_query($idconnect,"SELECT id_res FROM resultat_test WHERE id_test=$id_test AND id_animal=$id_anim");
					$nb2 = pg_num_rows($query2);
					if($nb2!=0){ //si un id_res existe déjà
						$back2 = pg_fetch_assoc($query2);
						$id_res = $back2['id_res'];
					}
					else{ //création de l'id_res
						$sql = pg_query($idconnect,"INSERT INTO resultat_test (id_test,id_animal) VALUES ($id_test,$id_anim) RETURNING id_res");
						$insert_row = pg_fetch_row($sql);
						$id_res = $insert_row[0];
					}

					//vérification que test_genotypage est bien rempli
					$query3 = pg_query($idconnect,"SELECT * FROM test_genotypage WHERE id_res=$id_res AND code_marqueur='$code'");
					$nb3 = pg_num_rows($query3);
					if($nb3!=0){//test_genotypage existe, mise à jour des informations
						$back3=pg_fetch_assoc($query3);

						if(($back3['localisation'] && $back3['localisation']!=$_POST['loc']) || (!($back3['localisation']))){
							$sql = pg_query($idconnect,"UPDATE test_genotypage SET localisation='".$_POST['loc']."' WHERE id_res=$id_res AND code_marqueur='$code'");
						}
						if(($back3['allele1'] && $back3['allele1']!=$_POST['al1']) || (!($back3['allele1']))){
							$sql = pg_query($idconnect,"UPDATE test_genotypage SET allele1='".$_POST['al1']."' WHERE id_res=$id_res AND code_marqueur='$code'");
						}
						if(($back3['allele2'] && $back3['allele2']!=$_POST['al2']) || (!($back3['allele1']))){
							$sql = pg_query($idconnect,"UPDATE test_genotypage SET allele2='".$_POST['al2']."' WHERE id_res=$id_res AND code_marqueur='$code'");
						}
						if(($back3['allele3'] && $_POST['al3'] && $back3['allele3']!=$_POST['al3']) || (!($back3['allele3']) && $_POST['al3'])){
							$sql = pg_query($idconnect,"UPDATE test_genotypage SET allele3='".$_POST['al3']."' WHERE id_res=$id_res AND code_marqueur='$code'");
						}
						if(($back3['genotype'] && $back3['genotype']!=$_POST['geno']) || (!($back3['genotype']))){
							$sql = pg_query($idconnect,"UPDATE test_genotypage SET genotype='".$_POST['geno']."' WHERE id_res=$id_res AND code_marqueur='$code'");
						}
						$message = "Test déjà enregistré dans la base, mise à jour";
					}
					else{ //création de test_genotypage
						$sql = pg_query($idconnect,"INSERT INTO test_genotypage (id_res,code_marqueur,localisation,allele1,allele2,allele3,genotype)
						VALUES($id_res,'$code','".$_POST['loc']."', ".$_POST['al1'].", ".$_POST['al2'].", ".$_POST['al3'].",'".$_POST['geno']."')");

						if(!(empty($_POST['al3']))){
							$sql2 = pg_query($idconnect,"UPDATE test_genotypage SET allele3='".$_POST['al3']."' WHERE id_res=$id_res AND code_marqueur='$code'");
						}
						$message = "Test enregistré";
					}
				}
			}
		}
	}
	else{
		header('Location: ../../site.php');
		exit();
	}

?>

<!DOCTYPE html>
<html>
	<head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="../../style.css" />
		<!--[if lt IE 9]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
        <!--[if lte IE 7]>
        <link rel="stylesheet" href="../../style_ie.css" />
        <![endif]-->
        <title>Base de données microcèbes</title>

        <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
		<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
		<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
		<script src="../../js/date_picker.js"></script>
		<script src="../../js/verif_form.js"></script>
		<script>
		$(function() {
			$( "#datepicker" ).datepicker();
		});
		</script>

        <script type="text/javascript">

			function afficher(oSelect){
				//affichage d'un champs pour créer un nouveau marqueur
				var value = oSelect.options[oSelect.selectedIndex].value;
				var elt = document.getElementsByClassName("autre");

				if(value=="autre"){
					for (var i=0; i<elt.length; i++){
						elt[i].style.display="inline";
					}
				}
				else{
					for (var i=0; i<elt.length; i++){
						elt[i].style.display="none";
					}
				}
			}

			function verif_form(f){ //vérification du formulaire avant l'envoie au serveur
				var dateOk = verifDate(f.date);
				var expOk = verifSelect(f.exp);
				var codeOk = verifSelect(f.code);
				var locOk = verif(f.loc);
				var al1Ok = verif(f.al1);
				var al2Ok = verif(f.al2);
				var genoOk = verif(f.geno);

				if(dateOk && expOk && codeOk && locOk && al1Ok && al2Ok && genoOk){
					return true;
				}
				else{
					alert("Veuillez remplir correctement tous les champs");
					return false;
				}
			}

			function updateGenoI() {
				console.log("lkjlkjlj");
				var output = $("#al1").val() + "/" + $("#al2").val() + "/" + $("#al3").val();
				$("#genoI").val(output);
				$("#genoS").html(output);
			}
		</script>
    </head>

    <body>
		<?php include((dirname(dirname(dirname(__FILE__))))."/menu.php"); ?>

		<section id="main">
			<header>
				<h1>Saisie - Génotypage animal <?php echo $code; ?></h1>
			</header>
			<?php include((dirname(dirname(__FILE__)))."/menu_saisie.php"); ?>
			<section id="animal">
				<div id="menu3">
					<ul id="onglets">
						<li class="active"><a href="genotype_s.php">Génotypage</a></li>
						<li><a href="seq_s.php">Séquençage</a></li>
					</ul>
				</div>
				<section id="contenu">
				<form method="post" action="<?php echo htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES); ?>" onsubmit="return verif_form(this)">
				<p id="infos_m">
					<label class="code2"><?php echo $message; ?></label><br/>
					<label class="label">Date du test:</label><input name="date" type="text" id="datepicker" class="box">
					<span class="code3" id="erreur_date">* Champ du type jj/mm/aaaa</span><br/>
					<label class="label">Expérimentateur:</label>
					<select class="box" name="exp">
						<option value="none">Sélection</option>
						<?php
							//remplissage du select avec la liste des utilisateurs inscrits
							$query = pg_query($idconnect,"SELECT DISTINCT (Prenom, Nom) as name FROM Utilisateur WHERE statut!='Visiteur' AND statut!='Collaborateur extérieur'");
							while ($back = pg_fetch_assoc($query)) {
								$temp =str_replace(',',' ',$back["name"]);
								$temp =str_replace('(','',$temp);
								$temp =str_replace(')','',$temp);
								echo "<option value=\"" . $temp."\">" . $temp."</option>\n";
							}
						?>
					</select><span class="code3" id="erreur_exp">* Sélectionner un expérimentateur</span><br/>

					<label class="label">Code marqueur:</label>
					<select class="box" name="code" onchange="afficher(this)">
						<option value="none">Sélection</option>
						<?php
							 //remplissage du select avec les codes marqueur enregistrés dans la base de données
							$query = pg_query($idconnect,"SELECT DISTINCT code_marqueur FROM Test_genotypage ORDER BY code_marqueur");
							while ($back = pg_fetch_assoc($query)) {
								echo "<option value=\"" . $back["code_marqueur"] . "\">" . $back["code_marqueur"]."</option>";
							}
						?>
						<option value="autre">Nouveau</option>
					</select><span class="code3" id="erreur_code">* Sélectionner un code</span>

					<label class="autre">Précisez:</label><input type="text" class="autre" id="autre_code" name="autre_code">
					<span class="code3" id="erreur_autre_code">* Remplir le champ</span><br/>

					<label class="label">Localisation:</label><input name="loc" type="text" class="box">
					<span class="code3" id="erreur_loc">* Remplir le champ</span><br/>

					<label class="label">Allèle 1:</label><input id="al1" name="al1" type="text" class="box" onkeyup="updateGenoI();" pattern="\d+"/>
					<span class="code3" id="erreur_al1">* Remplir le champ</span><br/>

					<label class="label">Allèle 2:</label><input id="al2" name="al2" type="text" class="box" onkeyup="updateGenoI();" pattern="\d+"/>
					<span class="code3" id="erreur_al2">* Remplir le champ</span><br/>

					<label class="label">Allèle 3:</label><input id="al3" name="al3" type="text" class="box" onkeyup="updateGenoI();" pattern="\d+"/><br/>

					<label class="label">Génotype:</label><span id="genoS"></span><input id="genoI" name="geno" type="hidden" class="box"/>
					<span class="code3" id="erreur_geno">* Remplir le champ</span><br/>
					<input type="submit" class="bouton" value="Valider">
				</p>
				</form>

				</section>
			</section>
		</section>
	</body>
</html>
